package com.example.example;

import com.example.core.common.util.CheckUtils;
import com.example.core.common.util.CollectionUtils;
import com.example.core.mybatis.example.AbstractExample;
import com.example.model.TestTable;
import tk.mybatis.mapper.entity.EntityColumn;
import tk.mybatis.mapper.entity.Example;

import java.util.Map;
import java.util.Date;

/**
 * test_table 
 *
 * @author xh
 * @since 2020/10/02
 */
public class TestTableExample extends AbstractExample<TestTable> {

    /**
     * 排序
     */
    protected OrderBy ORDER_BY;

    public TestTableExample() {
        super(TestTable.class);
        this.ORDER_BY = new OrderBy(this, propertyMap);
    }

    /**
     * and
     *
     * @return
     */
    @Override
    public Criteria and() {
        Criteria criteria = new Criteria(propertyMap, exists, notNull);
        criteria.setAndOr("and");
        oredCriteria.add(criteria);
        return criteria;
    }

    /**
     * order by
     *
     * @return
     */
    public OrderBy orderBy() {
        return ORDER_BY;
    }

    /**
     * order by
     */
    public static class OrderBy extends Example.OrderBy {

        public OrderBy(Example example, Map<String, EntityColumn> propertyMap) {
            super(example, propertyMap);
        }

        /**
         * desc
         *
         * @return
         */
        @Override
        public OrderBy desc() {
            super.desc();
            return this;
        }

        /**
         * asc
         *
         * @return
         */
        @Override
        public OrderBy asc() {
            super.asc();
            return this;
        }
        
        /**
         * order by id
         *
         * @return
         */
        public OrderBy id() {
            this.orderBy("id");
            return this;
        }
        
        /**
         * order by name
         *
         * @return
         */
        public OrderBy name() {
            this.orderBy("name");
            return this;
        }
        
        /**
         * order by value
         *
         * @return
         */
        public OrderBy value() {
            this.orderBy("value");
            return this;
        }
        
        /**
         * order by created_time
         *
         * @return
         */
        public OrderBy createdTime() {
            this.orderBy("createdTime");
            return this;
        }
        
        /**
         * order by modified_time
         *
         * @return
         */
        public OrderBy modifiedTime() {
            this.orderBy("modifiedTime");
            return this;
        }
        
        /**
         * order by deleted
         *
         * @return
         */
        public OrderBy deleted() {
            this.orderBy("deleted");
            return this;
        }
        
    }

    /**
     * where
     */
    public static class Criteria extends Example.Criteria {

        public Criteria(Map<String, EntityColumn> propertyMap, boolean exists, boolean notNull) {
            super(propertyMap, exists, notNull);
        }

        /**
         * and id = value
         *
         * @return
         */
        public Criteria andIdEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andEqualTo("id", value);
            return this;
        }

        /**
         * and id != value
         *
         * @return
         */
        public Criteria andIdNotEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andNotEqualTo("id", value);
            return this;
        }

        /**
         * and id > value
         *
         * @return
         */
        public Criteria andIdGreaterThan(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThan("id", value);
            return this;
        }

        /**
         * and id >= value
         *
         * @return
         */
        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThanOrEqualTo("id", value);
            return this;
        }

        /**
         * and id < value
         *
         * @return
         */
        public Criteria andIdLessThan(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThan("id", value);
            return this;
        }

        /**
         * and id <= value
         *
         * @return
         */
        public Criteria andIdLessThanOrEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThanOrEqualTo("id", value);
            return this;
        }

        /**
         * and id in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andIdIn(Iterable<Long> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("id", values);
            return this;
        }

        /**
         * and id in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andIdIn(Long... values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("id", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and id not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andIdNotIn(Iterable<Long> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("id", values);
            return this;
        }

        /**
         * and id not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andIdNotIn(Long[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("id", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and id between value1 and value2
         *
         * @return
         */
        public Criteria andIdBetween(Long value1, Long value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andBetween("id", value1, value2);
            return this;
        }

        /**
         * and id not between value1 and value2
         *
         * @return
         */
        public Criteria andIdNotBetween(Long value1, Long value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andNotBetween("id", value1, value2);
            return this;
        }

        /**
         * and id like value
         *
         * @return
         */
        public Criteria andIdLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLike("id", value);
            return this;
        }

        /**
         * and id not like value
         *
         * @return
         */
        public Criteria andIdNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andNotLike("id", value);
            return this;
        }

        /**
         * or id = value
         *
         * @return
         */
        public Criteria orIdEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orEqualTo("id", value);
            return this;
        }

        /**
         * or id != value
         *
         * @return
         */
        public Criteria orIdNotEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotEqualTo("id", value);
            return this;
        }

        /**
         * or id > value
         *
         * @return
         */
        public Criteria orIdGreaterThan(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThan("id", value);
            return this;
        }

        /**
         * or id >= value
         *
         * @return
         */
        public Criteria orIdGreaterThanOrEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThanOrEqualTo("id", value);
            return this;
        }

        /**
         * or id < value
         *
         * @return
         */
        public Criteria orIdLessThan(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThan("id", value);
            return this;
        }

        /**
         * or id <= value
         *
         * @return
         */
        public Criteria orIdLessThanOrEqualTo(Long value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThanOrEqualTo("id", value);
            return this;
        }

        /**
         * or id in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orIdIn(Iterable<Long> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("id", values);
            return this;
        }

        /**
         * or id in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orIdIn(Long[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("id", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or id not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orIdNotIn(Iterable<Long> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("id", values);
            return this;
        }

        /**
         * or id not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orIdNotIn(Long[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("id", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or id between value1 and value2
         *
         * @return
         */
        public Criteria orIdBetween(Long value1, Long value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orBetween("id", value1, value2);
            return this;
        }

        /**
         * or id not between value1 and value2
         *
         * @return
         */
        public Criteria orIdNotBetween(Long value1, Long value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orNotBetween("id", value1, value2);
            return this;
        }

        /**
         * or id like value
         *
         * @return
         */
        public Criteria orIdLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLike("id", value);
            return this;
        }

        /**
         * or id not like value
         *
         * @return
         */
        public Criteria orIdNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotLike("id", value);
            return this;
        }

        /**
         * and name = ''
         *
         * @return
         */
        public Criteria andNameIsEmpty() {
            this.andEqualTo("name", "");
            return this;
        }

        /**
         * and name != ''
         *
         * @return
         */
        public Criteria andNameIsNotEmpty() {
            this.andNotEqualTo("name", "");
            return this;
        }

        /**
         * and name = value
         *
         * @return
         */
        public Criteria andNameEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andEqualTo("name", value);
            return this;
        }

        /**
         * and name != value
         *
         * @return
         */
        public Criteria andNameNotEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andNotEqualTo("name", value);
            return this;
        }

        /**
         * and name > value
         *
         * @return
         */
        public Criteria andNameGreaterThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThan("name", value);
            return this;
        }

        /**
         * and name >= value
         *
         * @return
         */
        public Criteria andNameGreaterThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThanOrEqualTo("name", value);
            return this;
        }

        /**
         * and name < value
         *
         * @return
         */
        public Criteria andNameLessThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThan("name", value);
            return this;
        }

        /**
         * and name <= value
         *
         * @return
         */
        public Criteria andNameLessThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThanOrEqualTo("name", value);
            return this;
        }

        /**
         * and name in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andNameIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("name", values);
            return this;
        }

        /**
         * and name in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andNameIn(String... values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("name", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and name not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andNameNotIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("name", values);
            return this;
        }

        /**
         * and name not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andNameNotIn(String[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("name", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and name between value1 and value2
         *
         * @return
         */
        public Criteria andNameBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andBetween("name", value1, value2);
            return this;
        }

        /**
         * and name not between value1 and value2
         *
         * @return
         */
        public Criteria andNameNotBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andNotBetween("name", value1, value2);
            return this;
        }

        /**
         * and name like value
         *
         * @return
         */
        public Criteria andNameLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLike("name", value);
            return this;
        }

        /**
         * and name not like value
         *
         * @return
         */
        public Criteria andNameNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andNotLike("name", value);
            return this;
        }

        /**
         * or name = ''
         *
         * @return
         */
        public Criteria orNameIsEmpty() {
            this.orEqualTo("name", "");
            return this;
        }

        /**
         * or name != ''
         *
         * @return
         */
        public Criteria orNameIsNotEmpty() {
            this.orNotEqualTo("name", "");
            return this;
        }

        /**
         * or name = value
         *
         * @return
         */
        public Criteria orNameEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orEqualTo("name", value);
            return this;
        }

        /**
         * or name != value
         *
         * @return
         */
        public Criteria orNameNotEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotEqualTo("name", value);
            return this;
        }

        /**
         * or name > value
         *
         * @return
         */
        public Criteria orNameGreaterThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThan("name", value);
            return this;
        }

        /**
         * or name >= value
         *
         * @return
         */
        public Criteria orNameGreaterThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThanOrEqualTo("name", value);
            return this;
        }

        /**
         * or name < value
         *
         * @return
         */
        public Criteria orNameLessThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThan("name", value);
            return this;
        }

        /**
         * or name <= value
         *
         * @return
         */
        public Criteria orNameLessThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThanOrEqualTo("name", value);
            return this;
        }

        /**
         * or name in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orNameIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("name", values);
            return this;
        }

        /**
         * or name in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orNameIn(String[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("name", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or name not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orNameNotIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("name", values);
            return this;
        }

        /**
         * or name not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orNameNotIn(String[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("name", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or name between value1 and value2
         *
         * @return
         */
        public Criteria orNameBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orBetween("name", value1, value2);
            return this;
        }

        /**
         * or name not between value1 and value2
         *
         * @return
         */
        public Criteria orNameNotBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orNotBetween("name", value1, value2);
            return this;
        }

        /**
         * or name like value
         *
         * @return
         */
        public Criteria orNameLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLike("name", value);
            return this;
        }

        /**
         * or name not like value
         *
         * @return
         */
        public Criteria orNameNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotLike("name", value);
            return this;
        }

        /**
         * and value = ''
         *
         * @return
         */
        public Criteria andValueIsEmpty() {
            this.andEqualTo("value", "");
            return this;
        }

        /**
         * and value != ''
         *
         * @return
         */
        public Criteria andValueIsNotEmpty() {
            this.andNotEqualTo("value", "");
            return this;
        }

        /**
         * and value = value
         *
         * @return
         */
        public Criteria andValueEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andEqualTo("value", value);
            return this;
        }

        /**
         * and value != value
         *
         * @return
         */
        public Criteria andValueNotEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andNotEqualTo("value", value);
            return this;
        }

        /**
         * and value > value
         *
         * @return
         */
        public Criteria andValueGreaterThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThan("value", value);
            return this;
        }

        /**
         * and value >= value
         *
         * @return
         */
        public Criteria andValueGreaterThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThanOrEqualTo("value", value);
            return this;
        }

        /**
         * and value < value
         *
         * @return
         */
        public Criteria andValueLessThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThan("value", value);
            return this;
        }

        /**
         * and value <= value
         *
         * @return
         */
        public Criteria andValueLessThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThanOrEqualTo("value", value);
            return this;
        }

        /**
         * and value in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andValueIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("value", values);
            return this;
        }

        /**
         * and value in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andValueIn(String... values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("value", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and value not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andValueNotIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("value", values);
            return this;
        }

        /**
         * and value not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andValueNotIn(String[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("value", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and value between value1 and value2
         *
         * @return
         */
        public Criteria andValueBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andBetween("value", value1, value2);
            return this;
        }

        /**
         * and value not between value1 and value2
         *
         * @return
         */
        public Criteria andValueNotBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andNotBetween("value", value1, value2);
            return this;
        }

        /**
         * and value like value
         *
         * @return
         */
        public Criteria andValueLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLike("value", value);
            return this;
        }

        /**
         * and value not like value
         *
         * @return
         */
        public Criteria andValueNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andNotLike("value", value);
            return this;
        }

        /**
         * or value = ''
         *
         * @return
         */
        public Criteria orValueIsEmpty() {
            this.orEqualTo("value", "");
            return this;
        }

        /**
         * or value != ''
         *
         * @return
         */
        public Criteria orValueIsNotEmpty() {
            this.orNotEqualTo("value", "");
            return this;
        }

        /**
         * or value = value
         *
         * @return
         */
        public Criteria orValueEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orEqualTo("value", value);
            return this;
        }

        /**
         * or value != value
         *
         * @return
         */
        public Criteria orValueNotEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotEqualTo("value", value);
            return this;
        }

        /**
         * or value > value
         *
         * @return
         */
        public Criteria orValueGreaterThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThan("value", value);
            return this;
        }

        /**
         * or value >= value
         *
         * @return
         */
        public Criteria orValueGreaterThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThanOrEqualTo("value", value);
            return this;
        }

        /**
         * or value < value
         *
         * @return
         */
        public Criteria orValueLessThan(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThan("value", value);
            return this;
        }

        /**
         * or value <= value
         *
         * @return
         */
        public Criteria orValueLessThanOrEqualTo(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThanOrEqualTo("value", value);
            return this;
        }

        /**
         * or value in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orValueIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("value", values);
            return this;
        }

        /**
         * or value in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orValueIn(String[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("value", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or value not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orValueNotIn(Iterable<String> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("value", values);
            return this;
        }

        /**
         * or value not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orValueNotIn(String[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("value", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or value between value1 and value2
         *
         * @return
         */
        public Criteria orValueBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orBetween("value", value1, value2);
            return this;
        }

        /**
         * or value not between value1 and value2
         *
         * @return
         */
        public Criteria orValueNotBetween(String value1, String value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orNotBetween("value", value1, value2);
            return this;
        }

        /**
         * or value like value
         *
         * @return
         */
        public Criteria orValueLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLike("value", value);
            return this;
        }

        /**
         * or value not like value
         *
         * @return
         */
        public Criteria orValueNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotLike("value", value);
            return this;
        }

        /**
         * and created_time = value
         *
         * @return
         */
        public Criteria andCreatedTimeEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andEqualTo("createdTime", value);
            return this;
        }

        /**
         * and created_time != value
         *
         * @return
         */
        public Criteria andCreatedTimeNotEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andNotEqualTo("createdTime", value);
            return this;
        }

        /**
         * and created_time > value
         *
         * @return
         */
        public Criteria andCreatedTimeGreaterThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThan("createdTime", value);
            return this;
        }

        /**
         * and created_time >= value
         *
         * @return
         */
        public Criteria andCreatedTimeGreaterThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThanOrEqualTo("createdTime", value);
            return this;
        }

        /**
         * and created_time < value
         *
         * @return
         */
        public Criteria andCreatedTimeLessThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThan("createdTime", value);
            return this;
        }

        /**
         * and created_time <= value
         *
         * @return
         */
        public Criteria andCreatedTimeLessThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThanOrEqualTo("createdTime", value);
            return this;
        }

        /**
         * and created_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andCreatedTimeIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("createdTime", values);
            return this;
        }

        /**
         * and created_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andCreatedTimeIn(Date... values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("createdTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and created_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andCreatedTimeNotIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("createdTime", values);
            return this;
        }

        /**
         * and created_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andCreatedTimeNotIn(Date[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("createdTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and created_time between value1 and value2
         *
         * @return
         */
        public Criteria andCreatedTimeBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andBetween("createdTime", value1, value2);
            return this;
        }

        /**
         * and created_time not between value1 and value2
         *
         * @return
         */
        public Criteria andCreatedTimeNotBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andNotBetween("createdTime", value1, value2);
            return this;
        }

        /**
         * and created_time like value
         *
         * @return
         */
        public Criteria andCreatedTimeLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLike("createdTime", value);
            return this;
        }

        /**
         * and created_time not like value
         *
         * @return
         */
        public Criteria andCreatedTimeNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andNotLike("createdTime", value);
            return this;
        }

        /**
         * or created_time = value
         *
         * @return
         */
        public Criteria orCreatedTimeEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orEqualTo("createdTime", value);
            return this;
        }

        /**
         * or created_time != value
         *
         * @return
         */
        public Criteria orCreatedTimeNotEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotEqualTo("createdTime", value);
            return this;
        }

        /**
         * or created_time > value
         *
         * @return
         */
        public Criteria orCreatedTimeGreaterThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThan("createdTime", value);
            return this;
        }

        /**
         * or created_time >= value
         *
         * @return
         */
        public Criteria orCreatedTimeGreaterThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThanOrEqualTo("createdTime", value);
            return this;
        }

        /**
         * or created_time < value
         *
         * @return
         */
        public Criteria orCreatedTimeLessThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThan("createdTime", value);
            return this;
        }

        /**
         * or created_time <= value
         *
         * @return
         */
        public Criteria orCreatedTimeLessThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThanOrEqualTo("createdTime", value);
            return this;
        }

        /**
         * or created_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orCreatedTimeIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("createdTime", values);
            return this;
        }

        /**
         * or created_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orCreatedTimeIn(Date[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("createdTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or created_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orCreatedTimeNotIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("createdTime", values);
            return this;
        }

        /**
         * or created_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orCreatedTimeNotIn(Date[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("createdTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or created_time between value1 and value2
         *
         * @return
         */
        public Criteria orCreatedTimeBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orBetween("createdTime", value1, value2);
            return this;
        }

        /**
         * or created_time not between value1 and value2
         *
         * @return
         */
        public Criteria orCreatedTimeNotBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orNotBetween("createdTime", value1, value2);
            return this;
        }

        /**
         * or created_time like value
         *
         * @return
         */
        public Criteria orCreatedTimeLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLike("createdTime", value);
            return this;
        }

        /**
         * or created_time not like value
         *
         * @return
         */
        public Criteria orCreatedTimeNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotLike("createdTime", value);
            return this;
        }

        /**
         * and modified_time = value
         *
         * @return
         */
        public Criteria andModifiedTimeEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * and modified_time != value
         *
         * @return
         */
        public Criteria andModifiedTimeNotEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.andNotEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * and modified_time > value
         *
         * @return
         */
        public Criteria andModifiedTimeGreaterThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThan("modifiedTime", value);
            return this;
        }

        /**
         * and modified_time >= value
         *
         * @return
         */
        public Criteria andModifiedTimeGreaterThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andGreaterThanOrEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * and modified_time < value
         *
         * @return
         */
        public Criteria andModifiedTimeLessThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThan("modifiedTime", value);
            return this;
        }

        /**
         * and modified_time <= value
         *
         * @return
         */
        public Criteria andModifiedTimeLessThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLessThanOrEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * and modified_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andModifiedTimeIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("modifiedTime", values);
            return this;
        }

        /**
         * and modified_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andModifiedTimeIn(Date... values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andIn("modifiedTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and modified_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andModifiedTimeNotIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("modifiedTime", values);
            return this;
        }

        /**
         * and modified_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria andModifiedTimeNotIn(Date[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            super.andNotIn("modifiedTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * and modified_time between value1 and value2
         *
         * @return
         */
        public Criteria andModifiedTimeBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andBetween("modifiedTime", value1, value2);
            return this;
        }

        /**
         * and modified_time not between value1 and value2
         *
         * @return
         */
        public Criteria andModifiedTimeNotBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            super.andNotBetween("modifiedTime", value1, value2);
            return this;
        }

        /**
         * and modified_time like value
         *
         * @return
         */
        public Criteria andModifiedTimeLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andLike("modifiedTime", value);
            return this;
        }

        /**
         * and modified_time not like value
         *
         * @return
         */
        public Criteria andModifiedTimeNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            super.andNotLike("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time = value
         *
         * @return
         */
        public Criteria orModifiedTimeEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time != value
         *
         * @return
         */
        public Criteria orModifiedTimeNotEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time > value
         *
         * @return
         */
        public Criteria orModifiedTimeGreaterThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThan("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time >= value
         *
         * @return
         */
        public Criteria orModifiedTimeGreaterThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orGreaterThanOrEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time < value
         *
         * @return
         */
        public Criteria orModifiedTimeLessThan(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThan("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time <= value
         *
         * @return
         */
        public Criteria orModifiedTimeLessThanOrEqualTo(Date value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLessThanOrEqualTo("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orModifiedTimeIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("modifiedTime", values);
            return this;
        }

        /**
         * or modified_time in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orModifiedTimeIn(Date[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orIn("modifiedTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or modified_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orModifiedTimeNotIn(Iterable<Date> values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("modifiedTime", values);
            return this;
        }

        /**
         * or modified_time not in (value1, value2, ...)
         *
         * @return
         */
        public Criteria orModifiedTimeNotIn(Date[] values) {
            if (CheckUtils.isEmpty(values)) {
                return this;
            }
            this.orNotIn("modifiedTime", CollectionUtils.initList(values));
            return this;
        }

        /**
         * or modified_time between value1 and value2
         *
         * @return
         */
        public Criteria orModifiedTimeBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orBetween("modifiedTime", value1, value2);
            return this;
        }

        /**
         * or modified_time not between value1 and value2
         *
         * @return
         */
        public Criteria orModifiedTimeNotBetween(Date value1, Date value2) {
            if (CheckUtils.isAnyEmpty(value1, value2)) {
                return this;
            }
            this.orNotBetween("modifiedTime", value1, value2);
            return this;
        }

        /**
         * or modified_time like value
         *
         * @return
         */
        public Criteria orModifiedTimeLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orLike("modifiedTime", value);
            return this;
        }

        /**
         * or modified_time not like value
         *
         * @return
         */
        public Criteria orModifiedTimeNotLike(String value) {
            if (CheckUtils.isEmpty(value)) {
                return this;
            }
            this.orNotLike("modifiedTime", value);
            return this;
        }

        /**
         * and deleted = 0
         *
         * @return
         */
        public Criteria andValid() {
            this.andEqualTo("deleted", 0);
            return this;
        }

        /**
         * and deleted = 1
         *
         * @return
         */
        public Criteria andNotValid() {
            this.andEqualTo("deleted", 1);
            return this;
        }

        /**
         * or deleted = 0
         *
         * @return
         */
        public Criteria orValid() {
            this.orEqualTo("deleted", 0);
            return this;
        }

        /**
         * or deleted = 1
         *
         * @return
         */
        public Criteria orNotValid() {
            this.orEqualTo("deleted", 1);
            return this;
        }

    }

}
